Skip to content

CLI: keep transaction CBOR in Yaci Store - #205

Merged
satran004 merged 5 commits into
mainfrom
devkit/store-save-cbor
Nov 9, 2026
Merged

satran004 merged 5 commits into
mainfrom
devkit/store-save-cbor

Conversation

@satran004

@satran004 satran004 commented Oct 17, 2026 •

Copy link
Copy Markdown
Member

Sets store.transaction.save-cbor=true in the Yaci Store config that the CLI generates. With it, /api/v1/txs/{hash}/cbor works on devnets.

Why: Yaci Viewer's planned Script Lab (#207) re-runs and debugs script executions in the browser with the julc WebAssembly engine. Replay already works from structured store data. Raw transaction CBOR is what will make it byte-exact (once julc can evaluate from CBOR, bloxbean/julc#244). It also enables "why won't my tx submit?" debugging.

Scope: applies to newly created devnets, because the store config is written when a devnet is created. Storage cost on a devnet is negligible.

Testing: ./gradlew compileJava. Before this change, the devnet store returned 404 "Make sure store.transaction.save-cbor=true is enabled" for /txs/{hash}/cbor.

🤖 Generated with Claude Code

Enables store.transaction.save-cbor so /txs/{hash}/cbor works on devnets. The viewer needs
the raw transaction to replay and debug script executions exactly.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

Copy link
Copy Markdown

Initial automated review · Aster

Hi @satran004, thanks for the PR! 🙏 This is an automatic first check by an AI reviewer. It does not replace maintainer review and may be wrong.

Reviewed commit: a1a163fb60b901fc2af0411f7383574e5a150c33

Issues found:

  • applications/cli/src/main/java/com/bloxbean/cardano/yacicli/localcluster/yacistore/YaciStoreConfigBuilder.java:83 — The bundled Store 2.0.7 still defaults store.cardano.return-tx-body-cbor to false, so its parser omits body CBOR and TransactionProcessor skips saving it, leaving /txs/{hash}/cbor returning 404. Please enable that flag alongside save-cbor.

Not tested: Build and devnet CBOR retrieval were not run; native-build CI is still in progress.

Without it the parser returns no body CBOR, nothing is saved and
/txs/{hash}/cbor stays 404.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@satran004

Copy link
Copy Markdown
Member Author

Added b6d2a35, which also sets store.cardano.return-tx-body-cbor=true, as Aster pointed out.

  • Why it's needed: the store saves only the CBOR the parser returns, and in 2.0.7 that defaults to off. With save-cbor alone, nothing is saved and /txs/{hash}/cbor stays 404.
  • Limitation: even with both flags, Yaci Store 2.0.x saves only the transaction body bytes, with no witnesses. That is enough for /txs/{hash}/cbor, but not for a byte-exact Script Lab replay. The viewer (Viewer: address pages use Yaci Store's Blockfrost-compatible API when it is there #219, 7e6605c) treats body-only CBOR as "no CBOR" and replays from the store's JSON. Exact replay needs the store to save the whole transaction.

🤖 Generated with Claude Code

@satran004 satran004 closed this Nov 9, 2026
@satran004 satran004 reopened this Nov 9, 2026
satran004 and others added 3 commits November 9, 2026 13:51
setup-graalvm with distribution 'liberica' and java-version '21' picks the
newest Liberica NIK release. Its 21.0.13 release is tagged jdk-21.0.13+6 but
its assets are named 21.0.13.0.3+6, so the action finds no asset and every
build fails at setup. Pin the GraalVM that release-cli.yml already uses.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
`version: '21.0.5'` no longer resolves: setup-graalvm looks only among the 10
newest GDS builds for JDK 21, and 21.0.5 has dropped out of them (the oldest
listed is now 21.0.8). With `java-version: '21.0.5'` and no `version`, the
action downloads the same build from download.oracle.com/graalvm/21/archive/.
Applies to build.yml, release-cli.yml and dev-release-cli.yml.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The store is cloned and built with its own wrapper, which uses the 10 s default
networkTimeout. On GitHub runners the gradle-8.10 download from
services.gradle.org stalls longer than that, failing the native build three
times in a row (timeouts and a 504).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@satran004
satran004 merged commit 28fdb8d into main Nov 9, 2026
2 checks passed
@satran004
satran004 deleted the devkit/store-save-cbor branch November 9, 2026 07:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants